package org.lpw.wormhole.util;

/**
 * 格式转换器。负责对数据进行格式转换。
 * 
 * @author lpw
 */
public interface Converter
{
    /**
     * 将字符串按指定分隔符转换为字符串数组。
     * 
     * @param string
     *            要进行转换的字符串。
     * @param separator
     *            分隔符。
     * @return 转换后的字符串数组。如果字符串为null则返回空数组；如果分隔符为null或空字符串则返回仅包含原字符串的一元字符串数组。
     */
    public String[] toArray(String string, String separator);

    /**
     * 序列化为十六进制字符串。
     * 
     * @param object
     *            要系列化的对象。
     * @return 序列化后的十六进制字符串。如果要序列化的对象为null则返回null。
     */
    public String serializeToHexString(Object object);

    /**
     * 从序列化的十六进制字符串反序列化为对象。
     * 
     * @param string
     *            要反序列化的十六进制字符串。
     * @return 反序列化后的对象。如果反序列化失败则返回null。
     */
    public <T> T deserializeFromHexString(String string);
}
